import '../shared/models/word.dart';

class EsperantoAdvancedVocabulary {
  // 时间类 (Time) - 20个词汇
  static final List<Word> time = [
    Word(id: 'tempo', esperanto: 'tempo', english: 'time', pronunciation: 'TEM-po', definition: 'The indefinite continued progress of existence', category: 'Time', examples: ['La tempo pasas rapide'], audioUrl: '', difficulty: 1),
    Word(id: 'jaro', esperanto: 'jaro', english: 'year', pronunciation: 'JA-ro', definition: 'A period of 365 days', category: 'Time', examples: ['Ĉi tiu jaro estas 2024'], audioUrl: '', difficulty: 1),
    Word(id: 'monato', esperanto: 'monato', english: 'month', pronunciation: 'mo-NA-to', definition: 'A period of about 30 days', category: 'Time', examples: ['Januaro estas la unua monato'], audioUrl: '', difficulty: 1),
    Word(id: 'semajno', esperanto: 'semajno', english: 'week', pronunciation: 'se-MAJ-no', definition: 'A period of seven days', category: 'Time', examples: ['La semajno havas sep tagojn'], audioUrl: '', difficulty: 1),
    Word(id: 'tago', esperanto: 'tago', english: 'day', pronunciation: 'TA-go', definition: 'A 24-hour period', category: 'Time', examples: ['Hodiaŭ estas bela tago'], audioUrl: '', difficulty: 1),
    Word(id: 'horo', esperanto: 'horo', english: 'hour', pronunciation: 'HO-ro', definition: 'A period of 60 minutes', category: 'Time', examples: ['Mi atendis unu horon'], audioUrl: '', difficulty: 1),
    Word(id: 'minuto', esperanto: 'minuto', english: 'minute', pronunciation: 'mi-NU-to', definition: 'A period of 60 seconds', category: 'Time', examples: ['Ni alvenos post kvin minutoj'], audioUrl: '', difficulty: 1),
    Word(id: 'sekundo', esperanto: 'sekundo', english: 'second', pronunciation: 'se-KUN-do', definition: 'A very short period of time', category: 'Time', examples: ['Atendu sekundon'], audioUrl: '', difficulty: 1),
    Word(id: 'mateno', esperanto: 'mateno', english: 'morning', pronunciation: 'ma-TE-no', definition: 'The early part of the day', category: 'Time', examples: ['Bonan matenon!'], audioUrl: '', difficulty: 1),
    Word(id: 'tagmezo', esperanto: 'tagmezo', english: 'noon', pronunciation: 'tag-ME-zo', definition: 'Twelve o\'clock in the day', category: 'Time', examples: ['Ni manĝos je tagmezo'], audioUrl: '', difficulty: 1),
    Word(id: 'vespero', esperanto: 'vespero', english: 'evening', pronunciation: 'ves-PE-ro', definition: 'The latter part of the day', category: 'Time', examples: ['Bonan vesperon!'], audioUrl: '', difficulty: 1),
    Word(id: 'nokto', esperanto: 'nokto', english: 'night', pronunciation: 'NOK-to', definition: 'The time of darkness', category: 'Time', examples: ['Bonan nokton!'], audioUrl: '', difficulty: 1),
    Word(id: 'hieraŭ', esperanto: 'hieraŭ', english: 'yesterday', pronunciation: 'hi-e-RAŬ', definition: 'The day before today', category: 'Time', examples: ['Hieraŭ estis pluva'], audioUrl: '', difficulty: 1),
    Word(id: 'hodiaŭ', esperanto: 'hodiaŭ', english: 'today', pronunciation: 'ho-di-AŬ', definition: 'This present day', category: 'Time', examples: ['Hodiaŭ estas bela tago'], audioUrl: '', difficulty: 1),
    Word(id: 'morgaŭ', esperanto: 'morgaŭ', english: 'tomorrow', pronunciation: 'mor-GAŬ', definition: 'The day after today', category: 'Time', examples: ['Morgaŭ ni vojaĝos'], audioUrl: '', difficulty: 1),
    Word(id: 'printempo', esperanto: 'printempo', english: 'spring', pronunciation: 'prin-TEM-po', definition: 'The season after winter', category: 'Time', examples: ['En printempo floroj blovas'], audioUrl: '', difficulty: 2),
    Word(id: 'somero', esperanto: 'somero', english: 'summer', pronunciation: 'so-ME-ro', definition: 'The warmest season', category: 'Time', examples: ['Somere ni iras al la marbordo'], audioUrl: '', difficulty: 2),
    Word(id: 'aŭtuno', esperanto: 'aŭtuno', english: 'autumn', pronunciation: 'aŬ-tu-no', definition: 'The season after summer', category: 'Time', examples: ['Aŭtune folioj falas'], audioUrl: '', difficulty: 2),
    Word(id: 'vintro', esperanto: 'vintro', english: 'winter', pronunciation: 'VIN-tro', definition: 'The coldest season', category: 'Time', examples: ['Vintre ofte neĝas'], audioUrl: '', difficulty: 2),
    Word(id: 'jarcento', esperanto: 'jarcento', english: 'century', pronunciation: 'jar-CEN-to', definition: 'A period of 100 years', category: 'Time', examples: ['Ni vivas en la 21-a jarcento'], audioUrl: '', difficulty: 3),
  ];

  // 天气类 (Weather) - 20个词汇
  static final List<Word> weather = [
    Word(id: 'vetero', esperanto: 'vetero', english: 'weather', pronunciation: 've-TE-ro', definition: 'The atmospheric conditions', category: 'Weather', examples: ['La vetero estas bela'], audioUrl: '', difficulty: 1),
    Word(id: 'suno', esperanto: 'suno', english: 'sun', pronunciation: 'SU-no', definition: 'The star that gives light and heat', category: 'Weather', examples: ['La suno brilas'], audioUrl: '', difficulty: 1),
    Word(id: 'luno', esperanto: 'luno', english: 'moon', pronunciation: 'LU-no', definition: 'Earth\'s natural satellite', category: 'Weather', examples: ['La luno estas plena'], audioUrl: '', difficulty: 1),
    Word(id: 'stelo', esperanto: 'stelo', english: 'star', pronunciation: 'STE-lo', definition: 'A luminous celestial body', category: 'Weather', examples: ['Steloj brilas en la nokto'], audioUrl: '', difficulty: 1),
    Word(id: 'ĉielo', esperanto: 'ĉielo', english: 'sky', pronunciation: 'ĈI-e-lo', definition: 'The space above the earth', category: 'Weather', examples: ['La ĉielo estas blua'], audioUrl: '', difficulty: 1),
    Word(id: 'nubo', esperanto: 'nubo', english: 'cloud', pronunciation: 'NU-bo', definition: 'A visible mass of water vapor', category: 'Weather', examples: ['Nuboj kovras la ĉielon'], audioUrl: '', difficulty: 1),
    Word(id: 'pluvo', esperanto: 'pluvo', english: 'rain', pronunciation: 'PLU-vo', definition: 'Water falling from clouds', category: 'Weather', examples: ['Pluvas forte'], audioUrl: '', difficulty: 1),
    Word(id: 'neĝo', esperanto: 'neĝo', english: 'snow', pronunciation: 'NE-ĝo', definition: 'Frozen precipitation', category: 'Weather', examples: ['Vintre neĝas'], audioUrl: '', difficulty: 1),
    Word(id: 'vento', esperanto: 'vento', english: 'wind', pronunciation: 'VEN-to', definition: 'Moving air', category: 'Weather', examples: ['Forta vento blovas'], audioUrl: '', difficulty: 1),
    Word(id: 'fulmo', esperanto: 'fulmo', english: 'lightning', pronunciation: 'FUL-mo', definition: 'Electric discharge in the sky', category: 'Weather', examples: ['Fulmo brilegis'], audioUrl: '', difficulty: 2),
    Word(id: 'tondro', esperanto: 'tondro', english: 'thunder', pronunciation: 'TON-dro', definition: 'Sound of lightning', category: 'Weather', examples: ['Tondro sekvis la fulmon'], audioUrl: '', difficulty: 2),
    Word(id: 'ŝtormo', esperanto: 'ŝtormo', english: 'storm', pronunciation: 'ŜTOR-mo', definition: 'Violent weather condition', category: 'Weather', examples: ['Granda ŝtormo alproksimiĝas'], audioUrl: '', difficulty: 2),
    Word(id: 'nebulo', esperanto: 'nebulo', english: 'fog', pronunciation: 'ne-BU-lo', definition: 'Thick cloud near ground', category: 'Weather', examples: ['Densa nebulo kovras la urbon'], audioUrl: '', difficulty: 2),
    Word(id: 'glacio', esperanto: 'glacio', english: 'ice', pronunciation: 'GLA-ci-o', definition: 'Frozen water', category: 'Weather', examples: ['La lago kovriĝis per glacio'], audioUrl: '', difficulty: 1),
    Word(id: 'hajlo', esperanto: 'hajlo', english: 'hail', pronunciation: 'HAJ-lo', definition: 'Frozen rain pellets', category: 'Weather', examples: ['Hajlo damaĝis la aŭtojn'], audioUrl: '', difficulty: 2),
    Word(id: 'temperaturo', esperanto: 'temperaturo', english: 'temperature', pronunciation: 'tem-pe-ra-TU-ro', definition: 'Degree of heat or cold', category: 'Weather', examples: ['La temperaturo estas 20 gradoj'], audioUrl: '', difficulty: 2),
    Word(id: 'varma', esperanto: 'varma', english: 'warm', pronunciation: 'VAR-ma', definition: 'Having heat', category: 'Weather', examples: ['Estas varma tago'], audioUrl: '', difficulty: 1),
    Word(id: 'malvarma', esperanto: 'malvarma', english: 'cold', pronunciation: 'mal-VAR-ma', definition: 'Having little heat', category: 'Weather', examples: ['Estas malvarma nokto'], audioUrl: '', difficulty: 1),
    Word(id: 'varmega', esperanto: 'varmega', english: 'hot', pronunciation: 'var-ME-ga', definition: 'Very warm', category: 'Weather', examples: ['Estas varmega somero'], audioUrl: '', difficulty: 1),
    Word(id: 'malvarmega', esperanto: 'malvarmega', english: 'freezing', pronunciation: 'mal-var-ME-ga', definition: 'Very cold', category: 'Weather', examples: ['Estas malvarmega vintro'], audioUrl: '', difficulty: 2),
  ];

  // 获取所有高级词汇
  static List<Word> get allAdvancedVocabulary => [
    ...time,
    ...weather,
  ];

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    switch (category) {
      case 'Time':
        return time;
      case 'Weather':
        return weather;
      default:
        return allAdvancedVocabulary;
    }
  }

  // 获取所有类别
  static List<String> getAllCategories() {
    return ['Time', 'Weather'];
  }
} 